package com.xpj.annotation;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * 缓存清除注解，标记需要清除缓存的方法
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CacheEvict {

    /**
     * 缓存键前缀
     */
    String keyPrefix();

    /**
     * 缓存键参数索引（从0开始）
     */
    int keyParamIndex() default 0;

    /**
     * 缓存键的SpEL表达式（优先级高于keyParamIndex）
     * 例如："#id" 表示取方法参数中的id值
     */
    String keySpEL() default "";

    /**
     * 延迟删除等待时间 0:代表立即删除
     */
    long delayDelete() default 0;

}
    